package com.quectel.core.module.partybuildingmeeting.dto;

import com.quectel.core.module.partybuilding.dto.PartyPersonDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 *
 * @author bob
 * @email bob.yu@quectel.com
 * @date 2023/05/24 11:38
 */
@Data
@Schema
public class PartyBuildingMeetingDto implements Serializable {

    /**
    * id
    */
    @Schema(description = "id")
    private Long id;

    /**
    * 租户id
    */
    @Schema(description = "租户id")
    private Long tenantId;

    /**
    * 党组织id
    */
    @Schema(description = "党组织id")
    private Long partyId;

    /**
    * 活动类型：1.三会一课 2.主题党日 3.组织生活会
    */
    @Schema(description = "活动类型：1.三会一课 2.主题党日 3.组织生活会")
    private Byte category;

    /**
    * 会议主题
    */
    @Schema(description = "会议主题")
    private String subject;

    /**
    * 会议类型 根据category选取不同类型
    */
    @Schema(description = "会议类型 根据category选取不同类型")
    private Byte type;

    /**
    * 会议地点
    */
    @Schema(description = "会议地点")
    private String address;

    /**
    * 提醒类型 1.不提醒 2.即时提醒 3.会议开始前15分钟 ...
    */
    @Schema(description = "提醒类型 1.不提醒 2.即时提醒 3.会议开始前15分钟 ...")
    private Byte remindType;

    @Schema(description = "提醒时间")
    private Date remindTime;

    /**
    * 主持人
    */
    @Schema(description = "主持人")
    private String host;

    /**
    * 参会人类型多选 [1,2,3]
    */
    @Schema(description = "参会人类型多选 [1,2,3]")
    private String personTypeArr;

    /**
    * 上传附件
    */
    @Schema(description = "上传附件")
    private String extFiles;

    /**
    * 会议开始时间
    */
    @Schema(description = "会议开始时间")
    private Date startTime;

    /**
    * 会议结束时间
    */
    @Schema(description = "会议结束时间")
    private Date endTime;

    /**
    * 会议议题
    */
    @Schema(description = "会议议题")
    private String remark;

    /**
    * 状态： 0.未发布 1.发布
    */
    @Schema(description = "状态： 0.未发布 1.发布")
    private Byte status;

    @Schema(description = "是否推送1是0否")
    private Byte isPush;

    @Schema(description = "会议总结标题")
    private String summaryTitle;

    @Schema(description = "会议总结附件")
    private String summaryExtFiles;

    @Schema(description = "会议总结")
    private String summaryContent;

    /**
    * 创建人
    */
    @Schema(description = "创建人")
    private String creator;

    /**
    * 创建时间
    */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
    * 修改人
    */
    @Schema(description = "修改人")
    private String editor;

    /**
    * 修改时间
    */
    @Schema(description = "修改时间")
    private Date editTime;

    /************非数据库字段 start ************/
    @Schema(description = "党组织名称")
    private String partyName;

    @Schema(description = "绑定的党员")
    private List<PartyPersonDto> partyPersonList;

    @Schema(description = "参会总人数")
    private Integer totalPersonCount;

    @Schema(description = "实际参会人数")
    private Integer totalJoinCount;

    @Schema(description = "心得数")
    private Integer meetingExperienceCount;

    @Schema(description = "移动端使用-是否签到 0未签到 1已签到")
    private Byte isSign;


    /************非数据库字段 end **************/
}
